package com.evil.account.service;

import com.evil.account.pojo.entity.Enterprise;
import com.evil.account.pojo.entity.User;

/**
 * @author liyang
 * @date 2022-08-08 00:00
 */
public interface TokenService {

    /**
     * 创建token
     *
     * @param user       user
     * @param enterprise enterprise
     * @return token
     */
    String create(User user, Enterprise enterprise);

    /**
     * 删除token
     *
     * @param token token
     */
    void delToken(String token);

    /**
     * 删除当前用户所有的token
     *
     * @param userId userId
     */
    void delUserToken(Long userId);

    /**
     * 删除企业下某个用户的token
     *
     * @param enterpriseId enterpriseId
     * @param userId       userId
     */
    void delEnterpriseUserToken(Long enterpriseId, Long userId);

    /**
     * 切换企业token的处理
     *
     * @param enterpriseId    enterpriseId
     * @param userId          userId
     * @param token           token
     * @param newEnterpriseId newEnterpriseId
     */
    void switchEnterpriseTokenHandler(Long enterpriseId, Long userId, String token, Long newEnterpriseId);
}
